package net.lqy.aipan.service;

import net.lqy.aipan.dto.AccountFileDTO;
import net.lqy.aipan.model.AccountFileDO;
import net.lqy.aipan.model.StorageDO;

import java.util.ArrayList;
import java.util.List;

public interface StorageService {

    /**
     * 初始化用户存储空间
     */
    void initStorage(Long accountId);

    StorageDO selectByAccountId(Long accountId);

    /**
     * 更新用户存储空间
     */
    void updateByStorageFile(AccountFileDO accountFileDO);

    /**
     * 断言用户存储空间是否充足
     */
    void assertStorageEnough(Long accountId, Long fileSize);

    /**
     * 更新用户存储空间
     */
    void updateByDelFile(ArrayList<AccountFileDO> delAccountFileDOS);

    void updateByCopyBatchFile(List<AccountFileDO> accountFileDOS);
}
